package com.crm.service.csd.customerManager;

import com.crm.model.vo.csd.product.*;
import com.crm.model.vo.productManager.CustomerMemberProductVO;
import com.crm.model.vo.productManager.CustomerProductVO;

import java.util.List;

/**
 * @author wangpeng
 * @Date 2021/9/8
 */
public interface ProductExchangeDbService {
    
    /**
     * selectProductSceneList
     *       
     * @Author wangpeng
     * @Date 2021/9/9
     * @param order	
     * @return
     */
    List<sceneChangeCourseVO> selectProductSceneList(String order,Integer enableDisable);

    /**
     * selectProductIndustryList
     *       
     * @Author wangpeng
     * @Date 2021/9/9
     * @param order	
     * @return
     */
    List<industryChangeCourseVO> selectProductIndustryList(String order,Integer enableDisable);

    /**
     * selectProductHighClassList
     *       
     * @Author wangpeng
     * @Date 2021/9/9
     * @param order	
     * @return
     */
    List<highClassChangeCourseVO> selectProductHighClassList(String order,Integer enableDisable);

    /**
     * selectProductList
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param order	
     * @param productName
     * @return
     */
    List<CustomerProductVO> selectProductList(String order, String productName);

    /**
     * addProductScene
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param course	
     * @return
     */
    Boolean addProductScene(sceneChangeCourseVO course);

    /**
     * addProductIndustry
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param course	
     * @return
     */
    Boolean addProductIndustry(industryChangeCourseVO course);

    /**
     * addProductHighClass
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param course	
     * @return
     */
    Boolean addProductHighClass(highClassChangeCourseVO course);

    /**
     * ProductHighClassList
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param ruleNumber	
     * @return
     */
    highClassChangeCourseVO ProductHighClassList(String ruleNumber);

    /**
     * ProductIndustryList
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param ruleNumber	
     * @return
     */
    industryChangeCourseVO ProductIndustryList(String ruleNumber);

    /**
     * ProductSceneList
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param ruleNumber	
     * @return
     */
    sceneChangeCourseVO ProductSceneList(String ruleNumber);

    Boolean updateProductSceneEnableDisable(String id, String enableDisable);

    /**
     * selectChangeCourseRecord
     * @Author wangpeng
     * @Date 2021/9/26
     * @param order
     * @param vo
     * @return
     */
    List<ChangeCourseRecordVO> selectChangeCourseRecord(String order, ChangeCourseRecordVO vo);

    /**
     * selectChangeCourseRecordRuleNumber
     * 查规则编号
     * @Author wangpeng
     * @Date 2021/9/26
     * @param
     * @return
     */
    List<ChangeCourseRecordVO> selectChangeCourseRecordRuleNumber();

    /**
     * selectHighClassExchangeDaysList
     * @Author wangpeng
     * @Date 2021/10/22
     * @param order
     * @return
     */
    List<highClassExchangeDaysVO> selectHighClassExchangeDaysList(String order,Integer enableDisable);

    /**
     * addHighClassExchangeDays
     * @Author wangpeng
     * @Date 2021/10/22
     * @param vo	
     * @return
     */
    Boolean addHighClassExchangeDays(highClassExchangeDaysVO vo);

    Boolean updateIndustryChangeCourseEnableDisable(String id, String enableDisable);

    Boolean updateHighClassEnableDisable(String id, String enableDisable);

    Boolean updateHighClassExchangeDaysEnableDisable(String id, String enableDisable);

    List<siteExchangeIndustryVO> selectSiteExchangeIndustryList(String toString, Integer enableDisable);

    Boolean addSiteExchangeIndustry(siteExchangeIndustryVO vo);

    List<industryExchangeSiteVO> selectIndustryExchangeSiteList(String toString, Integer enableDisable);

    Boolean addIndustryExchangeSite(industryExchangeSiteVO vo);

    Boolean updateSiteExchangeIndustryEnableDisable(String id, String enableDisable);

    Boolean updateIndustryExchangeSiteEnableDisable(String id, String enableDisable);

    List<CustomerMemberProductVO> selectHighCustomerMemberProductList(String order, String productName);

    /**
     * 兑换未审核
     * @Author renshaorong
     * @Date 2021/12/17
     * @return
     */
    Integer getProductExchangeNum();
}
